"""
!/usr/bin/env python
-*- coding: utf-8 -*-
@Author  : MarkJia
@Site    : 
@File    : 11、数据驱动读取json配置文件.py
"""

"""
json 文件：
    全称是 JavaScript Object Notation
    json 是 js 的对象
    json 是一个轻量级的数据交互格式
json格式：
    对象 : {'key':value}
    数组 ： [value1,value2...]
"""

import json

# ============== 注意：字典是单引号， json 是双引号 =============================

"""
{
    "name": "MackJia",
    "detail":{
        "couse":"python",
        "city":"xian"
      },
    "code": [666,888,999]
}

读取 json 文件
    内置函数 open()
    内置库 json
    方法： json.loads()
    方法： json.dumps()

"""


# 内置函数：open
# 内置库：json

# 转化成 python 字典
def get_python():
    with open('demo.json', 'r') as f:
        data = json.loads(f.read())
        # 将 json 对象转化成 python 字典格式。
        # 结果为：<class 'dict'> {'name': 'MackJia', 'detail': {'couse': 'python', 'city': 'xian'}, 'code': [666, 888, 999]}
        print(type(data), data)
    return data


# ==================== ensure_ascii=False ：支持中文字符，indent=4，缩进（美化json格式） ==========================
# 转化成 json 文本
def get_json():
    # 将 python 字典对象转化成json文本
    data1 = json.dumps(get_python())
    # 结果为：<class 'str'> {"name": "MackJia", "detail": {"couse": "python", "city": "xian"}, "code": [666, 888, 999]}
    print(type(data1), data1)
    return data1


if __name__ == '__main__':
    get_python()
    get_json()
